package API.RegexDome;

/**
 * ClassName:RegexText004
 * Package:API.RegexDome
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/1/31-21:51
 * @Version:v1.0
 */
public class RegexText004 {
    /*
     * 预定义字符(只匹配一个字符)
     * . 任何字符
     * \d 一个数字：[0-9]
     * \D 非数字：[^0-9]
     * \s 一个空白字符：[\t\n\xOB\f\r]
     * \S 非空白字符：[^\s]
     * \w [a-zA-Z_0-9] 英文,数字,下划线
     * \W [^\w] 一个非单词字符
     * */

    //  '\'  转义字符  改变后面字符原本的含义
    //  ""   在Java中表示字符串的开始和结尾

    public static void main(String[] args) {
        //练习：以字符串的形式打印双引号
        System.out.println("\"  \"");//"  "


        //. 任何字符
        System.out.println("===1===");
        System.out.println("你".matches("."));//true
        System.out.println("你n".matches("."));//false
        System.out.println("你n".matches(".."));//true
        System.out.println("w".matches("."));//true


        // \d 一个数字：[0-9]
        System.out.println("===2===");
        //   \\d  其中第一个\表示转义字符
        System.out.println("2".matches("\\d"));//true
        System.out.println("a".matches("\\d"));//false
        System.out.println("2a".matches("\\d."));//true
        System.out.println("23".matches("\\d\\d"));//true
        System.out.println("2d".matches("\\d[a-zA-Z]"));//true


        // \w [a-zA-Z_0-9] 英文,数字,下划线
        System.out.println("===3===");
        System.out.println("2".matches("\\w"));//true
        System.out.println("a".matches("\\w"));//true
        System.out.println("A".matches("\\w"));//true
        System.out.println("_".matches("\\w"));//true
        System.out.println("你".matches("\\w"));//false
        System.out.println("2a".matches("\\w"));//false

        // \W [^\w] 一个非单词字符
        System.out.println("===4===");
        System.out.println("你".matches("\\W"));//true
        System.out.println("a".matches("\\W"));//false

        //以上正则表达式只能校验单个字符













    }
}
